﻿<?php 
require_once '../sources/dao/constantes.php';
require_once '../sources/dao/DaoFilms.class.php';
require_once '../sources/dao/DaoClients.class.php';
require_once '../sources/dao/DaoLocations.class.php';

// fonction métier
function getAllFilms() {	
	//dao
	$film = new DaoFilms();	
	$result = $film->getFilmAll();		
	// retourne le tableau de tous les films
	return $result;
}		
function identification($id,$mdp){	
	$bool = 0;//par defaut pas trouver
	$client = new DaoClients();
// 	$result = $client->isClient($id,$mdp);
	$result = $client->getClientById($id);
	if($result->cl_id == $id && $result->cl_pwd == $mdp){
		$bool = 1;//trouver
	}
// 	return $result;
	return $bool;
}

/*
 * @argv id du client
 * return le client qui a l identifiant $id
 */
function getClientById($id){
	$daoClient = new DaoClients();
	$client = $daoClient->getClientById($id);
	return $client;
}
/*
 * @argv id du client
* return les derniers (??) locations du client
*/
function getLocationsByIdClient($id){
	$daoLocation = new DaoLocations();
	$tabLocation = $daoLocation->getFilmsLocationsPayerbyIdClient($id);
	return $tabLocation;
}


function setDebutLocation($tabIdFilm,$idClient){
	var_dump($tabIdFilm);	
	$film = new DaoFilms();
	$location = new DaoLocations();
	$film->setDebutLocation($tabIdFilm);
	$location->setLocation($tabIdFilm,$idClient);
}

//update les films a Dispo dont les id sont dans $tabIdFilm
function setRetourLocation($tabIdPrixFilm,$idClient){
	
	$tabIdF = array();
	$film = new DaoFilms();
	$location = new DaoLocations();
	foreach ($tabIdPrixFilm as $value){
		$ele = explode('$$', $value);
		array_push($tabIdF, $ele[0]);
	//	echo $ele."<br/>";
	}
	$film->setDVDADispo($tabIdF);
	$location->setPrixLocation($tabIdPrixFilm, $idClient);
}


//it works!!!!!!!!!!!!!!
//NE PAS TOUCHER!!!!!!!!!!!!!!!!!!!
function dvdEncoreLouable($idClient){
	$tabAfficher = array();
	$tabUpdate = array();
	$film = new DaoFilms();
	$tabDVDReserver = $film->getFilmReserverByIdclient($idClient);
	if(count($tabDVDReserver) > 0){
		$premierElem = $tabDVDReserver[0];
		$dateCurrentTime = new DateTime($premierElem->currenttime);
		$interval = new DateInterval('PT1H30M');
		
		foreach($tabDVDReserver as $value){
			$dateLimRes = new DateTime($value->f_lim_res);
			$datePlus1h30 = $dateLimRes->add($interval);	
						
			if($dateCurrentTime <= $datePlus1h30){
				array_push($tabAfficher, $value);
			}else{
				array_push($tabUpdate, $value->f_id);
			}			
		}
		$film->setDVDADispo($tabUpdate);		
	}
	return $tabAfficher;
	
}

/*
 * return un tableau , pour affichage de retour DVD
 */
function rendreDVD($idClient){	
	$film = new DaoFilms();
	$tabDVDRetour = $film->getFilmLouerByIdclient($idClient);	
	return $tabDVDRetour;
}




/*
 * ca return l element le plus petit
 */
function plusPetitElementduTablo($tab){
	$prem = $tab[0]->prixLocation;
	foreach($tab as $value){
		if($value->prixLocation <= $prem){
			$prem = $value;
		}
	}
	return $prem;
}

/*
 * focntion de trie car j en ai besoin dans tarification
 */
function cmp($a, $b){
	if ($a->prixLocation == $b->prixLocatio) {
		return 0;
	}
	return ($a->prixLocatio < $b->prixLocatio) ? -1 : 1;
}


/*
 * TODO POUR AFFICHER DIRECT LE PRIX 
 * 
 * PENSER A ISOLER LA TARIFICATION EN FUNCTION
 */
function tarification($idClient){
	//ne peut on pas le mettre dans un truc qui sera pour tout le code? au chargement??
	
 	date_default_timezone_set('Europe/Paris');
	
	
	$film = new DaoFilms();
	$tabDVDRetour = $film->getFilmLouerByIdclient($idClient);
	if(count($tabDVDRetour) > 0){
		$dateCurrentTime = new DateTime($tabDVDRetour[0]->currenttime);
		$inter24 = new DateInterval('PT24H');
		$inter12 = new DateInterval('PT12H');
		foreach ($tabDVDRetour as $value){
			$prixLocation = 0;
			$dateDebLoc = new DateTime($value->f_deb_loc);
			$dateDebLocPlus24 = $dateDebLoc->add($inter24);
			$dateDebLocPlus12 = $dateDebLoc->add($inter12);
			
			$inter24Bis = $dateDebLocPlus24->diff($dateCurrentTime);
			$inter12Bis = $dateDebLocPlus12->diff($dateCurrentTime);
			
			//c au dela des 24heures  ou en dessous?
			if($dateCurrentTime > $dateDebLocPlus24){
				//penalite
			//	echo "10<br/>";
				$prixLocation = $prixLocation + PENALITEE_DVD_NON_RETOURNER;
				$prixLocation = $prixLocation + (12 * PRIX_PAR_HEURE_DANS_PREMIERE_TRANCHE);
				$prixLocation = $prixLocation + (12 * PRIX_PAR_HEURE_DANS_DEUXIEME_TRANCHE);
			}else{//on est dans le cas ou c en dessou de 24 heures
				//pas penalite
				//voir cas au dela de 12H ou en dessous
			//	echo "20<br/>";
				if($dateCurrentTime > $dateDebLocPlus12){
					if($inter12Bis->i >= 1){
						$inter12Bis->h = $inter12Bis->h + 1;
					}
				//	echo "30<br/>";
					$prixLocation = $prixLocation + (12 * PRIX_PAR_HEURE_DANS_PREMIERE_TRANCHE);
					$prixLocation = $prixLocation + ( $inter12Bis->h * PRIX_PAR_HEURE_DANS_DEUXIEME_TRANCHE );
				}else{					
					$interCurrentMoinsDEBLOC = $dateDebLoc->diff($dateCurrentTime);

					if($interCurrentMoinsDEBLOC->i >= 1){
						$interCurrentMoinsDEBLOC->h = $interCurrentMoinsDEBLOC->h + 1;
					}					
					$prixLocation = $prixLocation + ($interCurrentMoinsDEBLOC->h * PRIX_PAR_HEURE_DANS_PREMIERE_TRANCHE);
// 					echo "40<br/>";
// 					 echo $dateDebLoc->format('Y-m-d H:i:s')."<br/>";
// 					 echo $dateCurrentTime->format('Y-m-d H:i:s')."<br/>";
				}
			}			
			$value->prixLocation = $prixLocation;			
		}
	}
	
//	usort($tabDVDRetour, "$cmp");
//	traitement pour le cas gratos...
//	fodrait le trier puis set prixLocation du premier element a 0
// 	$location = new DaoLocations();
// 	$nob = $location->getLocationNonPayerbyIdClient($idClient);
// 	//calcul modulo
// 	$modulo = $nob % LOCATION_GRATUITE_POUR;
// 	if($modulo == 0){
//		$tabDVDRetour[0]->prixLocation = 0;
// 	}
	
	return $tabDVDRetour;
}



/*
 * nombre de film louer payer a faire avant la gratos
 */

function nbLouerPayerAvantgratos($idClient){
	$location = new DaoLocations();
	
				$nbLocatioPayer = $location->getNbLocationPayerbyIdClient($idClient);
	
	$resteDivision = $nbLocatioPayer % LOCATION_GRATUITE_POUR;
	
	//TODO faire un if qui faut bien
	$nbFILM = 0;
	$nbFILM = LOCATION_GRATUITE_POUR - $resteDivision;	
	return $nbFILM;
}


/*
 * se deconnecter
 */

function deconnexion(){
	unset($_SESSION["clientLOGIN"]);
	unset($_SESSION["clientPASSWD"]);
	$_SESSION["clientLOGIN"] = null;
	$_SESSION["clientPASSWD"] = null;
}
/***************************************************************************************************
 * ***********DISPLAYS******************************************************************************
 * *************************************************************************************************
 * */

function displayDistributeurRetour($tabDVDRetour){
	$barreNavigation = '<div id="barreNavigation">
			<form method="POST" action="../distributeur/index.php?action=distributeurAcceuil" id="myFormdistributeurAcceuil" name="myFormdistributeurAcceuil">
			<input type="submit" value="ACCEUIL" id="butoAcceuilBN" class="boutton"/>
			</form>
			<form method="POST" action="../distributeur/index.php?action=distributeurCompteClient" id="myFormCompteClient" name="myFormCompteClient">
				<input type="submit" value="MON COMPTE" id="butoMonCompteBN" class="boutton"/>
			</form>
			<form method="POST" action="../distributeur/index.php?action=distributeurRetrait" id="myFormRetrait" name="myFormRetrait">
				<input type="submit" value="RETRAIT" id="butoRetraitBN" class="boutton"/>
			</form>
			<form method="POST" action="../distributeur/index.php?action=deconnexion" id="myFormDeconnexion" name="myFormDeconnexion">
				<input type="submit" value="DECONNEXION" id="butoDeconnexionBN" class="boutton"/>
			</form>
			</div>';
	$interm = '';
					
	if(count($tabDVDRetour) != 0){
		$interm = '<body  onload="isCocherCheckboxRetour();">'.$barreNavigation.'	
				<div id="distributeurRetour"><form action="../distributeur/index.php?action=distributeurRetourDVDS" method="post" id="checkboxRetour" name="checkboxRetour">';
			
		foreach($tabDVDRetour as $key => $value){
			$interm = $interm.'<div class="survole" ><input type="checkbox" onclick="isCocherCheckboxRetour();" name="optionsDVDRetour[]" value="'.$value->f_id.'$$'.$value->prixLocation.'">'.$value->f_titre.'<img src="../images/'.$value->f_id.'.jpg" alt="cover du film" height="42" width="42">Prix Location : '.$value->prixLocation.'</div>';
			
		}
		$fin = '<input type="button" value="RETOUR" id="butoRetour" class="boutton" onclick="confirmMessageCheckboxRetour()"/></form></div></body>';
	}
	else{
		$interm = '<div id="distributeurRetour">'.$barreNavigation.'<H1>AUCUNE LOCATION !!!!</H1>';
		$fin = '</div></body>';
	}	

 	$interm = $interm.$fin; 		
	$html = <<<EOD
		{$interm}
EOD;
		return $interm;
}


function displayDistributeurRetrait($tabDVDReserver){	
	$barreNavigation = '<div id="barreNavigation">
			<form method="POST" action="../distributeur/index.php?action=distributeurAcceuil" id="myFormdistributeurAcceuil" name="myFormdistributeurAcceuil">	
			<input type="submit" value="ACCEUIL" id="butoAcceuilBN" class="boutton"/>
			</form>
			<form method="POST" action="../distributeur/index.php?action=distributeurCompteClient" id="myFormCompteClient" name="myFormCompteClient">
				<input type="submit" value="MON COMPTE" id="butoMonCompteBN" class="boutton"/>
			</form>			
			<form method="POST" action="../distributeur/index.php?action=distributeurRetour" id="myFormRetour" name="myFormRetour">
				<input type="submit" value="RETOUR" id="butoRetourBN" class="boutton"/>
			</form>			
			<form method="POST" action="../distributeur/index.php?action=deconnexion" id="myFormDeconnexion" name="myFormDeconnexion">
				<input type="submit" value="DECONNEXION" id="butoDeconnexionBN" class="boutton"/>
			</form>
			</div>';	
	if(count($tabDVDReserver) != 0){
		$interm = '<body  onload="isCocherCheckboxRetrait();">'.$barreNavigation.'				
				<div id="distributeurRetrait">
	 			<form action="../distributeur/index.php?action=distributeurRetraitLocation" method="post" id="checkboxRetrait" name="checkboxRetrait">';
		
		foreach($tabDVDReserver as $value){
			$interm = $interm.'<div class="survole"><input type="checkbox" name="optionsDVDRetrait[]" value="'.$value->f_id.'"  onclick="isCocherCheckboxRetrait();" >'.$value->f_titre.'<img src="../images/'.$value->f_id.'.jpg" alt="cover du film" height="42" width="42"></div>';					
		}
	 	$fin = '<input type="button" value="RETRAIT" id="butoRetrait" class="boutton" onclick="confirmMessageCheckboxRetrait();"/></form></div></body>';
	 	$interm = $interm.$fin;	
	}else{
		$interm = $barreNavigation.'<H1>AUCUNE RESERVATION !!</H1>';
	}
	
	$html = <<<EOD
		{$interm}
EOD;
	return $interm;
}

//penser a mettre des formulaire
function displayDistributeurChoixRetraitRetour(){
	$interm = '<div id="distributeurRetraitRetourMain">			
			<div id="distributeurMonCompte" >
			<form method="post" action="../distributeur/index.php?action=distributeurCompteClient">
			<input type="submit" value="MON COMPTE" class="distributeurChoix"/>
			</form>
				</div>
			
			<div id="distributeurRetrait" >
			<form method="post" action="../distributeur/index.php?action=distributeurRetrait">
			<input type="submit" value="RETRAIT" class="distributeurChoix"/>
			</form>
				</div>
			
			<div id="distributeurDeconnexion" >
			<form method="post" action="../distributeur/index.php?action=deconnexion" name="deconnexionDistributeurForm">
			<input type="button" value="DECONNEXION" class="distributeurChoix" onclick="confirmMessageDeconnexion();"/>
			</form>
			</div>
							
				<div id="distributeurRetour" >				
			<form method="post" action="../distributeur/index.php?action=distributeurRetour">
			<input type="submit" value="RETOUR" class="distributeurChoix"/>
			</form>
				</div>						
		</div>
			<div id="onglet">		
			<object data="../vue/onglets.php" type="text/html" width="100%" height="100%">
  alt : <a href="data/test.html">test.html</a>
	</object>
	</div>
			';
	$html = <<<EOD
		{$interm}
EOD;
	return $interm;
}


function displayCompteClient($client,$encoreLouerPayerAvantGratos,$tabLocation){
	//y metre getClient
	//y mettre les film qu il a louer 
	//combien de film il lui reste  avant la gratuite(la moins chere ...)
	//etc...
	$interm = '
			<div id="barreNavigation">
			<form method="POST" action="../distributeur/index.php" id="myFormAcceuil" name="myFormAcceuil">	
			<input type="submit" value="ACCEUIL" id="butoAcceuilBN" class="boutton"/>
			</form>			
			<form method="POST" action="../distributeur/index.php?action=distributeurRetrait" id="checkboxRetrait" name="myFormRetrait">
				<input type="submit" value="RETRAIT" id="butoRetraitBN" class="boutton"/>
			</form>
			<form method="POST" action="../distributeur/index.php?action=distributeurRetour" id="myFormRetour" name="myFormRetour">
				<input type="submit" value="RETOUR" id="butoRetourBN" class="boutton"/>
			</form>			
			<form method="POST" action="../distributeur/index.php?action=deconnexion" id="myFormDeconnexion" name="myFormDeconnexion">
				<input type="submit" value="DECONNEXION" id="butoDeconnexionBN" class="boutton"/>
			</form>
			</div>
			<div id="onglet">		
			<object data="../vue/onglets.php" type="text/html" width="100%" height="100%">
 			 alt : <a href="data/test.html">test.html</a>
			</object>
			</div>';
			foreach($tabLocation as $value){
			$interm = $interm.'<p>'.$value->f_titre.'<img src="../images/'.$value->f_id.'.jpg" alt="cover du film" height="42" width="42"><p>';					
		}
		$interm = $interm.'SALUT <p>'.$client->cl_nom.'</p>'.'<p>'.$client->cl_prenom.'</p>';
			$interm = $interm.'<div> Y METTRE DES TRUCS QUI SERVENT!!!</div>Il vous reste '.$encoreLouerPayerAvantGratos.' de locations payées afin de pourvoir avoir profiter d une location gratuite (le le moins chere ....XD)';
	$html = <<<EOD
		{$interm}
EOD;
			return $interm;
}


//pour le top faire un object et refaire le controleur !!!!
function displayLogin(){		
	$interm = '<div id="cadre">
			<div id="loginPass">
	<form method="POST" action="../distributeur/index.php?action=LogMdp" id="checkboxRetrait" name="myForm">
	<p>identifiant : <input type="text" name="login"/></p>
	<p>mot de passe : <input type="text" name="passwd"/></p>
	<p><input type="submit" id="myForm" value="se connecter"/></p>
	</form>
	</div>
	<div id="onglet">		
			<object data="../vue/onglets.php" type="text/html" width="100%" height="100%">
  			alt : <a href="data/test.html">test.html</a>
			</object>
	</div>
	</div>		';
	
	$html = <<<EOD
		{$interm}
EOD;
	return $interm;	
}
?>